package com.xiangge.demo;

import java.util.Arrays;
import java.util.Random;

public class ArrayDemo4 {
    public static void main(String[] args) {
        /*
            定义一个数组其中包含多个数字。用自己的方式最终实现，奇数放在数组的左边，偶数放在数组的右边。（可以创建其他数组，不必须在原数组中改变）
         */
        // 1. 定义一个数组arr,长度为：10  -   存入[1,100]随机整数
        int[] arr = new int[10];

        // 2. 存入10个[1,100]范围的随机整数
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new Random().nextInt(100) + 1;
        }
        System.out.println(Arrays.toString(arr));

        // 3. 将arr中的奇数放在左边, 偶数放在右边
        // 3.1. 统计arr中奇数和偶数的个数：  jiShu  ouShu
        int jiShu = 0 , ouShu = 0 ;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] % 2 == 1){
                jiShu++;
            }
            else{
                ouShu++;
            }
        }
        // 3.2 根据   jiShu  ouShu创建数组
        int[] jiShuShuZhu = new int[jiShu];
        int[] ouShuShuZhu = new int[ouShu];

        // 3.3 将arr中奇数存入jiShuShuZhu 中
        int index1 = 0;
        for (int element : arr) {
            if (element % 2 == 1){
                jiShuShuZhu[index1++] = element;
            }
        }

        int index2 = 0;
        for (int element : arr) {
            if (element % 2 == 0){
                ouShuShuZhu[index2++] = element;
            }
        }

        // 创建一个新的数组： arr.length
        int[] newArr = new int[arr.length];

        // 奖罚奇数数组中元素存入newArr的左边
        for (int i = 0; i < jiShu; i++) {
            newArr[i] = jiShuShuZhu[i];
        }

        // 将偶数数组中元素从后往前存入新数组newArr [newArr.length-1, jiShu]
        for (int i = 0; i < ouShuShuZhu.length; i++) {
            newArr[i + jiShu] = ouShuShuZhu[i];
        }

        System.out.println(Arrays.toString(newArr));


    }
    public static void main1(String[] args) {
        // 1. 定义一个程度为5的数组：arr
        int[] arr = new int[5];

        // 2. 产生5个[0,100]的整数存入数组中
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new Random().nextInt(101);
        }
        System.out.println(Arrays.toString(arr));

        // 3. 将数组arr中小于10的数都打印出来，如果没有小于10的数那么就打印没有合适数据
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < 10) {
                System.out.println(arr[i]);
                count++;
            }
        }

        if (count == 0) {
            System.out.println("没有合适数据！");
        }
    }
}
